package com.geeklan.smart.utils;

public class PasswordValidator {
    public static boolean isValidPassword(String password) {
        if (password == null) {
            return false;
        }
        // 长度校验
        if (password.length() < 8 || password.length() > 20) {
            return false;
        }
        // 必须包含至少一个大写字母、小写字母和数字
        boolean hasUpper = false, hasLower = false, hasDigit = false;
        for (char c : password.toCharArray()) {
            if (Character.isUpperCase(c)) {
                hasUpper = true;
            } else if (Character.isLowerCase(c)) {
                hasLower = true;
            } else if (Character.isDigit(c)) {
                hasDigit = true;
            }
            // 如果已满足所有条件，就可以提前返回
            if (hasUpper && hasLower && hasDigit) {
                return true;
            }
        }
        return false;
    }
}

